package com.tiancheng.trade.settlement.vo.settlement.api;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @Auther: liudong
 * @Date: 2024/3/30 17:48
 * @Param ${tags}
 * @Description:
 */
@Setter
@Getter
@ToString
public class PaymentBillVO {
    /**
     * 支付订单号
     */
    @NotNull
    private String paymentId;

    /**
     * 渠道支付订单号
     */
    @NotNull
    private String flowId;

    /**
     * 银行支付流水
     */
    private String payChannelOrderid;

    /**
     * 交易类型：订单类型：pay 支付，refund 退款
     */
    @NotNull
    private String transactionType;

    /**
     * 支付渠道
     */
    @NotNull
    private String payChannel;

    /**
     * 交易方式
     */
    @NotNull
    private String payWay;

    /**
     * 交易金额
     */
    private Integer payAmount;
    /**
     * 订单金额
     */
    private Integer orderAmount;

    /**
     * 优惠金额
     */
    private Integer discount;

    /**
     * userId
     */
    private String uid;
    /**
     * 支付渠道用户标识
     */
    private String openid;

    /**
     * 支付订单数量
     */
    private Integer orderNum;

    /**
     * 商户code
     */
    private String merchantCode;

    /**
     * 商户名称
     */
    private String merchantName;

    /**
     * 原交易渠道支付订单号
     */
    private String originalFlowId;

    /**
     * 原交易银行流水号
     */
    private String originalPayChannelOrderid;

    /**
     * 交易时间
     */
    private LocalDateTime payTime;
    /**
     * 订单创建时间
     */
    private LocalDateTime createTime;

    /**
     * 退款时间
     */
    private LocalDateTime refundTime;

    /**
     * 记账时间
     */
    private LocalDateTime recordTime;
    /**
     * 交易金额
     */
    private Integer refundApplyAmount;
    /**
     * 订单金额
     */
    private Integer refundAmount;
    /**
     * 通道费率
     */
    @NotNull
    private BigDecimal slottingRate;

}
